News All Tests
Current file: /home/estudydev/workspace/MSP09/web/news/tests/class.newscategory.inc.php
Legend: executed not executed dead code

  Coverage
  Classes Methods Lines
Total
100.00 %100.00%
100.00% 1 / 1
0.00 %0.00%
0.00% 0 / 12
2.52 %2.52%
2.52% 3 / 119
 
NewsCategory
100.00 %100.00%
100.00% 1 / 1
0.00 %0.00%
0.00% 0 / 12
0.85 %0.85%
0.85% 1 / 117
 protected function __construct($catID, $courses = NULL, $category = NULL)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 10
 public function getCategory()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function setCoursePreferences($preferences)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 2
 public function getNews($courseID, $lastvisit, $usergroup = NULL)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 3
 public function hasNews($courseID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getMissedNews($courseID, $lastvisit, $usergroup = NULL)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 17
 public function echoNewsTableHead($courseID, $type = NULL)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 50
 public function echoNews($courseID, $usergroup = NULL)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 8
 protected function getUserInfos()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 7
 protected function getPeriod($courseID, $lastvisit)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 10
 protected function getProfileLink($user, $userID, $courseID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 6
 public function getUsers()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1


       1                 : <?php                                                                                                                                                                                                                                                                                             
       2                 : /*--------------------------------------------------------------------------+                                                                                                                                                                                                                     
       3                 : This file is part of eStudy.                                                                                                                                                                                                                                                                      
       4                 : news/classes/class.NewsCategory.inc.php                                                                                                                                                                                                                                                           
       5                 : - Modulgruppe:  News                                                                                                                                                                                                                                                                              
       6                 : - Beschreibung: Oberklasse der News-Kategorien.                                                                                                                                                                                                                                                   
       7                 : - Version:      0.1, 09/01/08                                                                                                                                                                                                                                                                     
       8                 : - Autor(en):    Corinna Kropf <corinna.kropf@mni.fh-giessen.de>                                                                                                                                                                                                                                   
       9                 : +---------------------------------------------------------------------------+                                                                                                                                                                                                                     
      10                 : This program is free software; you can redistribute it and/or                                                                                                                                                                                                                                     
      11                 : modify it under the terms of the GNU General Public License                                                                                                                                                                                                                                       
      12                 : as published by the Free Software Foundation; either version 2                                                                                                                                                                                                                                    
      13                 : of the License, or any later version.                                                                                                                                                                                                                                                             
      14                 : +---------------------------------------------------------------------------+                                                                                                                                                                                                                     
      15                 : This program is distributed in the hope that it will be useful,                                                                                                                                                                                                                                   
      16                 : but WITHOUT ANY WARRANTY; without even the implied warranty of                                                                                                                                                                                                                                    
      17                 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                                                                                                                                                                                                     
      18                 : GNU General Public License for more details.                                                                                                                                                                                                                                                      
      19                 : You should have received a copy of the GNU General Public License                                                                                                                                                                                                                                 
      20                 : along with this program; if not, write to the Free Software                                                                                                                                                                                                                                       
      21                 : Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.                                                                                                                                                                                                                       
      22                 : +--------------------------------------------------------------------------*/                                                                                                                                                                                                                     
      23                 :                                                                                                                                                                                                                                                                                                   
      24               1 : require_once ("class.bbcode.inc.php");                                                                                                                                                                                                                                                            
      25               1 : require_once ("class.Course.inc.php");                                                                                                                                                                                                                                                            
      26                 :                                                                                                                                                                                                                                                                                                   
      27                 :                                                                                                                                                                                                                                                                                                   
      28                 : /**                                                                                                                                                                                                                                                                                               
      29                 :  * Abstrakte Oberklasse der News-Kategorien                                                                                                                                                                                                                                                       
      30                 :  */                                                                                                                                                                                                                                                                                               
      31                 : abstract class NewsCategory                                                                                                                                                                                                                                                                       
      32               1 : {                                                                                                                                                                                                                                                                                                 
      33                 :      /**                                                                                                                                                                                                                                                                                          
      34                 :      * Query Cache zur Minimierung von DB Abfragen (Performance Tweak)                                                                                                                                                                                                                            
      35                 :      * @var int                                                                                                                                                                                                                                                                                   
      36                 :      */                                                                                                                                                                                                                                                                                           
      37                 :     protected $queryCacheObject;                                                                                                                                                                                                                                                                  
      38                 :     /**                                                                                                                                                                                                                                                                                           
      39                 :      * Kategorie-ID                                                                                                                                                                                                                                                                               
      40                 :      * @var int                                                                                                                                                                                                                                                                                   
      41                 :      */                                                                                                                                                                                                                                                                                           
      42                 :     protected $myCategory;                                                                                                                                                                                                                                                                        
      43                 :     /**                                                                                                                                                                                                                                                                                           
      44                 :      * News der jeweiligen Kategorie                                                                                                                                                                                                                                                              
      45                 :      * @var array                                                                                                                                                                                                                                                                                 
      46                 :      */                                                                                                                                                                                                                                                                                           
      47                 :     protected $news;                                                                                                                                                                                                                                                                              
      48                 :     /**                                                                                                                                                                                                                                                                                           
      49                 :      * Liste der User-IDs                                                                                                                                                                                                                                                                         
      50                 :      * @var array                                                                                                                                                                                                                                                                                 
      51                 :      */                                                                                                                                                                                                                                                                                           
      52                 :     protected $courses;                                                                                                                                                                                                                                                                           
      53                 :     /**                                                                                                                                                                                                                                                                                           
      54                 :      * Kurs-Einstellungen                                                                                                                                                                                                                                                                         
      55                 :      * @var array                                                                                                                                                                                                                                                                                 
      56                 :      */                                                                                                                                                                                                                                                                                           
      57                 :     protected $coursePreferences;                                                                                                                                                                                                                                                                 
      58                 :     /**                                                                                                                                                                                                                                                                                           
      59                 :      * Kurs-Einstellungen                                                                                                                                                                                                                                                                         
      60                 :      * @var array                                                                                                                                                                                                                                                                                 
      61                 :      */                                                                                                                                                                                                                                                                                           
      62                 :     protected $users;                                                                                                                                                                                                                                                                             
      63                 :     /**                                                                                                                                                                                                                                                                                           
      64                 :      * BBCode-Parser-Objekt zum Entfernen von BBCode-Tags                                                                                                                                                                                                                                         
      65                 :      * @var object                                                                                                                                                                                                                                                                                
      66                 :      */                                                                                                                                                                                                                                                                                           
      67                 :     protected $bbcode;                                                                                                                                                                                                                                                                            
      68                 :                                                                                                                                                                                                                                                                                                   
      69                 :     /**                                                                                                                                                                                                                                                                                           
      70                 :      * Zend_Translate - Objekt                                                                                                                                                                                                                                                                    
      71                 :      */                                                                                                                                                                                                                                                                                           
      72                 :     protected $translate;                                                                                                                                                                                                                                                                         
      73                 :                                                                                                                                                                                                                                                                                                   
      74                 :     /**                                                                                                                                                                                                                                                                                           
      75                 :      * Zend_Locale - Objekt                                                                                                                                                                                                                                                                       
      76                 :      */                                                                                                                                                                                                                                                                                           
      77                 :     protected $locale;                                                                                                                                                                                                                                                                            
      78                 :                                                                                                                                                                                                                                                                                                   
      79                 :     /**                                                                                                                                                                                                                                                                                           
      80                 :      * Vorletzter Besuch der Kategorie                                                                                                                                                                                                                                                            
      81                 :      *                                                                                                                                                                                                                                                                                            
      82                 :      * @var int                                                                                                                                                                                                                                                                                   
      83                 :      */                                                                                                                                                                                                                                                                                           
      84                 :     private $secondlastvisit;                                                                                                                                                                                                                                                                     
      85                 :                                                                                                                                                                                                                                                                                                   
      86                 :     /**                                                                                                                                                                                                                                                                                           
      87                 :      * Konstruktor                                                                                                                                                                                                                                                                                
      88                 :      * Klasse soll nicht direkt instantiiert werden koennen                                                                                                                                                                                                                                       
      89                 :      *                                                                                                                                                                                                                                                                                            
      90                 :      * @param $catID int ID der News-Kategorie                                                                                                                                                                                                                                                    
      91                 :      * @param $courses array Liste der Kurse, fuer die die News anzuzeigen sind                                                                                                                                                                                                                   
      92                 :      */                                                                                                                                                                                                                                                                                           
      93                 :                                                                                                                                                                                                                                                                                                   
      94                 :     /**                                                                                                                                                                                                                                                                                           
      95                 :      * @var Category                                                                                                                                                                                                                                                                              
      96                 :      */                                                                                                                                                                                                                                                                                           
      97                 :     protected $categorySettings;                                                                                                                                                                                                                                                                  
      98                 :                                                                                                                                                                                                                                                                                                   
      99                 :     protected function __construct($catID, $courses = null, $category = null)                                                                                                                                                                                                                     
     100                 :     {                                                                                                                                                                                                                                                                                             
     101               0 :         $this->locale = getLocale();                                                                                                                                                                                                                                                              
     102               0 :         $this->translate = getTranslate("news");                                                                                                                                                                                                                                                  
     103               0 :         $this->queryCacheObject = null;                                                                                                                                                                                                                                                           
     104                 :                                                                                                                                                                                                                                                                                                   
     105               0 :         $this->myCategory = $catID;                                                                                                                                                                                                                                                               
     106               0 :         $this->courses = $courses;                                                                                                                                                                                                                                                                
     107               0 :         $this->news = null;                                                                                                                                                                                                                                                                       
     108               0 :         $this->bbcode = new BBCode();                                                                                                                                                                                                                                                             
     109               0 :         $this->secondlastvisit = 0;                                                                                                                                                                                                                                                               
     110               0 :         $this->categorySettings = $category;                                                                                                                                                                                                                                                      
     111               0 :     }                                                                                                                                                                                                                                                                                             
     112                 :     /**                                                                                                                                                                                                                                                                                           
     113                 :      * Gibt die ID der Kategorie zurück (wird im Konstruktor übergeben)                                                                                                                                                                                                                         
     114                 :      *                                                                                                                                                                                                                                                                                            
     115                 :      * @access return int Kategorie-ID                                                                                                                                                                                                                                                            
     116                 :      */                                                                                                                                                                                                                                                                                           
     117                 :     public function getCategory()                                                                                                                                                                                                                                                                 
     118                 :     {                                                                                                                                                                                                                                                                                             
     119               0 :         return $this->myCategory;                                                                                                                                                                                                                                                                 
     120                 :     }                                                                                                                                                                                                                                                                                             
     121                 :     /**                                                                                                                                                                                                                                                                                           
     122                 :      * Funktion zum Setzen der Kurs-Einstellungen fuer die jeweilige Kategorie                                                                                                                                                                                                                    
     123                 :      *                                                                                                                                                                                                                                                                                            
     124                 :      * @param $preferences array                                                                                                                                                                                                                                                                  
     125                 :      */                                                                                                                                                                                                                                                                                           
     126                 :     public function setCoursePreferences($preferences)                                                                                                                                                                                                                                            
     127                 :     {                                                                                                                                                                                                                                                                                             
     128               0 :         $this->coursePreferences = $preferences;                                                                                                                                                                                                                                                  
     129               0 :     }                                                                                                                                                                                                                                                                                             
     130                 :     /**                                                                                                                                                                                                                                                                                           
     131                 :      * Überprüft, ob das Modul im jeweiligen Kurs installiert ist.                                                                                                                                                                                                                              
     132                 :      * Muss von jeder Unterklasse implementiert werden.                                                                                                                                                                                                                                           
     133                 :      *                                                                                                                                                                                                                                                                                            
     134                 :      * @param $courseID int aktuell behandelter Kurs                                                                                                                                                                                                                                              
     135                 :      * @return bool true wenn Modul installiert, false sonst                                                                                                                                                                                                                                      
     136                 :      */                                                                                                                                                                                                                                                                                           
     137                 :     public abstract function isInstalled($courseID);                                                                                                                                                                                                                                              
     138                 :     /**                                                                                                                                                                                                                                                                                           
     139                 :      * Muss von jeder Unterklasse implementiert werden.                                                                                                                                                                                                                                           
     140                 :      *                                                                                                                                                                                                                                                                                            
     141                 :      * @return bool true, wenn diese Kategorie nach Zeitintervall gefiltert werden kann, false sonst                                                                                                                                                                                              
     142                 :      */                                                                                                                                                                                                                                                                                           
     143                 :     public abstract function canSelectPeriod();                                                                                                                                                                                                                                                   
     144                 :     /**                                                                                                                                                                                                                                                                                           
     145                 :      * Erzeugt die passende Ueberschrift. Muss von jeder Unterklasse implementiert werden.                                                                                                                                                                                                        
     146                 :      *                                                                                                                                                                                                                                                                                            
     147                 :      * @param $courseID int ID des Kurses                                                                                                                                                                                                                                                         
     148                 :      * @param $type String Unterscheidung zwischen course und ecom                                                                                                                                                                                                                                
     149                 :      * @return string Ueberschrift für die News-Kategorie                                                                                                                                                                                                                                        
     150                 :      */                                                                                                                                                                                                                                                                                           
     151                 :     public abstract function getNewsHeaderTitle($courseID = null, $type = null);                                                                                                                                                                                                                  
     152                 :                                                                                                                                                                                                                                                                                                   
     153                 :     /**                                                                                                                                                                                                                                                                                           
     154                 :      * Methoden zum Ermitteln der News.                                                                                                                                                                                                                                                           
     155                 :      *                                                                                                                                                                                                                                                                                            
     156                 :      * @param int $courseID int ID des Kurses                                                                                                                                                                                                                                                     
     157                 :      * @param int $lastvisit Timestamp des letzten Besuches dieses Users im Portal                                                                                                                                                                                                                
     158                 :      * @param int $usergroup ID der Benutzergruppe (default null)                                                                                                                                                                                                                                 
     159                 :      * @param array $queryCacheObject Query cache zur Minimierung von DB Abfragen                                                                                                                                                                                                                 
     160                 :      * @return mixed  Array mit den News, wenn vorhanden, null sonst                                                                                                                                                                                                                              
     161                 :      */                                                                                                                                                                                                                                                                                           
     162                 :     public function getNews($courseID, $lastvisit, $usergroup = null) {                                                                                                                                                                                                                           
     163               0 :         $from = $lastvisit;                                                                                                                                                                                                                                                                       
     164               0 :         $to = time();                                                                                                                                                                                                                                                                             
     165                 :                                                                                                                                                                                                                                                                                                   
     166               0 :         return $this->getNewsByPeriod($courseID, $from, $to, $lastvisit, $usergroup);                                                                                                                                                                                                             
     167                 :     }                                                                                                                                                                                                                                                                                             
     168                 :                                                                                                                                                                                                                                                                                                   
     169                 :     public function hasNews($courseID) {                                                                                                                                                                                                                                                          
     170               0 :         return $this->isInstalled($courseID) && (! empty($this->news["data"]) || isset($_GET['showAll']));                                                                                                                                                                                        
     171                 :     }                                                                                                                                                                                                                                                                                             
     172                 :                                                                                                                                                                                                                                                                                                   
     173                 :     /**                                                                                                                                                                                                                                                                                           
     174                 :      * Methoden zum Ermitteln der verpassten News.                                                                                                                                                                                                                                                
     175                 :      *                                                                                                                                                                                                                                                                                            
     176                 :      * @param int $courseID int ID des Kurses                                                                                                                                                                                                                                                     
     177                 :      * @param int $lastvisit Timestamp des letzten Besuches dieses Users im Portal                                                                                                                                                                                                                
     178                 :      * @param int $usergroup ID der Benutzergruppe (default null)                                                                                                                                                                                                                                 
     179                 :      * @param array $queryCacheObject Query cache zur Minimierung von DB Abfragen                                                                                                                                                                                                                 
     180                 :      * @return mixed  Array mit den News, wenn vorhanden, null sonst                                                                                                                                                                                                                              
     181                 :      **/                                                                                                                                                                                                                                                                                          
     182                 :     public function getMissedNews($courseID, $lastvisit, $usergroup = null) {                                                                                                                                                                                                                     
     183               0 :         if (!$this->canSelectPeriod()) {                                                                                                                                                                                                                                                          
     184               0 :             return null;                                                                                                                                                                                                                                                                          
     185                 :         }                                                                                                                                                                                                                                                                                         
     186                 :                                                                                                                                                                                                                                                                                                   
     187               0 :         global $db;                                                                                                                                                                                                                                                                               
     188               0 :         $from = $this->secondlastvisit;                                                                                                                                                                                                                                                           
     189               0 :         $to = $lastvisit;                                                                                                                                                                                                                                                                         
     190                 :                                                                                                                                                                                                                                                                                                   
     191                 :         /* Zeitpunkt noch nicht gesetzt -> ermitteln */                                                                                                                                                                                                                                           
     192               0 :         if ($from == 0) {                                                                                                                                                                                                                                                                         
     193                 :             /* Nicht ausgeloggt: lastlogout->lastlogin2 (lastvisit==lastlogin2) */                                                                                                                                                                                                                
     194               0 :             if (isset($_SESSION['loggedout']) && !$_SESSION['loggedout']) {                                                                                                                                                                                                                       
     195               0 :                 $query = "SELECT lastlogout FROM user WHERE ID='".$_SESSION["userid"]."'";                                                                                                                                                                                                        
     196               0 :                 $result = $db->get_row($query, ARRAY_A);                                                                                                                                                                                                                                          
     197               0 :                 $from = $result['lastlogout'];                                                                                                                                                                                                                                                    
     198                 :             /* Ausgeloggt: lastlogin2->lastlogout (lastvisit==lastlogout) */                                                                                                                                                                                                                      
     199               0 :             } else {                                                                                                                                                                                                                                                                              
     200               0 :                 $query = "SELECT lastlogin2 FROM user WHERE ID='".$_SESSION["userid"]."'";                                                                                                                                                                                                        
     201               0 :                 $result = $db->get_row($query, ARRAY_A);                                                                                                                                                                                                                                          
     202               0 :                 $from = $result['lastlogin2'];                                                                                                                                                                                                                                                    
     203                 :             }                                                                                                                                                                                                                                                                                     
     204                 :                                                                                                                                                                                                                                                                                                   
     205               0 :             $this->secondlastvisit = $from;                                                                                                                                                                                                                                                       
     206               0 :         }                                                                                                                                                                                                                                                                                         
     207                 :                                                                                                                                                                                                                                                                                                   
     208               0 :         return $this->getNewsByPeriod($courseID, $from, $to, $lastvisit, $usergroup);                                                                                                                                                                                                             
     209                 :     }                                                                                                                                                                                                                                                                                             
     210                 :                                                                                                                                                                                                                                                                                                   
     211                 :     /**                                                                                                                                                                                                                                                                                           
     212                 :      * Methode zum Ermitteln der News nach Zeitintervall. Muss von jeder Unterklasse implementiert werden.                                                                                                                                                                                        
     213                 :      *                                                                                                                                                                                                                                                                                            
     214                 :      * @param $courseID int ID des Kurses                                                                                                                                                                                                                                                         
     215                 :      * @param $lastvisit int Timestamp des letzten Besuches dieses Users im Portal                                                                                                                                                                                                                
     216                 :      * @param $usergroup int ID der Benutzergruppe (default null)                                                                                                                                                                                                                                 
     217                 :      * @return mixed Array mit den News, wenn vorhanden, null sonst                                                                                                                                                                                                                               
     218                 :      */                                                                                                                                                                                                                                                                                           
     219                 :     protected abstract function getNewsByPeriod($courseID, $from, $to, $lastvisit, $usergroup = null);                                                                                                                                                                                            
     220                 :                                                                                                                                                                                                                                                                                                   
     221                 :     /**                                                                                                                                                                                                                                                                                           
     222                 :      * Ausgabe des Tabellenkopfes einer Kategorie mit Anzahl der News, Titel, Menue etc.                                                                                                                                                                                                          
     223                 :      *                                                                                                                                                                                                                                                                                            
     224                 :      * @param $courseID int aktuell behandelter Kurs                                                                                                                                                                                                                                              
     225                 :      * @param $type String course oder ecom                                                                                                                                                                                                                                                       
     226                 :      * @param $category int Newskategorie                                                                                                                                                                                                                                                         
     227                 :      */                                                                                                                                                                                                                                                                                           
     228                 :     public function echoNewsTableHead($courseID, $type = null) {                                                                                                                                                                                                                                  
     229                 :                                                                                                                                                                                                                                                                                                   
     230               0 :         if(!isset($courseID)) return;                                                                                                                                                                                                                                                             
     231               0 :         if(!is_numeric($courseID)) return;                                                                                                                                                                                                                                                        
     232               0 :         if(!$this->hasNews($courseID)) return;                                                                                                                                                                                                                                                    
     233                 :                                                                                                                                                                                                                                                                                                   
     234               0 :         $showPeriodSelector = $this->canSelectPeriod();                                                                                                                                                                                                                                           
     235               0 :         $title = $this->getNewsHeaderTitle($courseID, $type);                                                                                                                                                                                                                                     
     236               0 :         $category = $this->myCategory;                                                                                                                                                                                                                                                            
     237                 :                                                                                                                                                                                                                                                                                                   
     238               0 :         $color = "";                                                                                                                                                                                                                                                                              
     239               0 :           if ($this->categorySettings->getColor() != "") {                                                                                                                                                                                                                                        
     240               0 :               $textColor = ($this->categorySettings->hasDarkColor()) ? "white" : "black";                                                                                                                                                                                                         
     241               0 :               $color = "style='background-color: #" . $this->categorySettings->getColor() . "; color: $textColor;'";                                                                                                                                                                              
     242               0 :           }                                                                                                                                                                                                                                                                                       
     243                 :                                                                                                                                                                                                                                                                                                   
     244               0 :         echo "<table class='newsCatBlock' cellspacing='0' id='category$courseID$category'>\n";                                                                                                                                                                                                    
     245               0 :         if ($showPeriodSelector && isset($this->coursePreferences)) {                                                                                                                                                                                                                             
     246               0 :               $periodSelectIcon = PATH_TO_ROOT."images/arrow_r.gif";                                                                                                                                                                                                                              
     247               0 :               $selectablePeriods = array(LASTVISIT, 1, 2, 3, 5, 7, 10, 14, 21, 28);                                                                                                                                                                                                               
     248               0 :               if ($courseID > 0) { // Nur in Kursen, nicht im Foyer                                                                                                                                                                                                                               
     249               0 :                 $selectablePeriods[] = COURSESTART;                                                                                                                                                                                                                                               
     250               0 :               }                                                                                                                                                                                                                                                                                   
     251               0 :               if ($courseID == 0) { // Nur im Foyer                                                                                                                                                                                                                                               
     252               0 :                 $selectablePeriods[] = REGDATE;                                                                                                                                                                                                                                                   
     253               0 :               }                                                                                                                                                                                                                                                                                   
     254               0 :               $periodSelections = "";                                                                                                                                                                                                                                                             
     255               0 :               foreach($selectablePeriods as $period) {                                                                                                                                                                                                                                            
     256               0 :                 $selected = ($this->coursePreferences == $period)? " selected='selected'" : "";                                                                                                                                                                                                   
     257                 :                 switch($period) {                                                                                                                                                                                                                                                                 
     258               0 :                      case LASTVISIT:                                                                                                                                                                                                                                                              
     259               0 :                             $timeToDisplay = $this->translate->_("Seit dem letzten Besuch");                                                                                                                                                                                                      
     260               0 :                         break;                                                                                                                                                                                                                                                                    
     261               0 :                       case 1:                                                                                                                                                                                                                                                                     
     262               0 :                             $timeToDisplay = $this->translate->_("Letzte 24 Stunden");                                                                                                                                                                                                            
     263               0 :                         break;                                                                                                                                                                                                                                                                    
     264               0 :                       case COURSESTART:                                                                                                                                                                                                                                                           
     265               0 :                             $timeToDisplay = $this->translate->_("Seit Kursbeginn");                                                                                                                                                                                                              
     266               0 :                         break;                                                                                                                                                                                                                                                                    
     267               0 :                       case REGDATE:                                                                                                                                                                                                                                                               
     268               0 :                             $timeToDisplay = $this->translate->_("Seit Portalanmeldung");                                                                                                                                                                                                         
     269               0 :                         break;                                                                                                                                                                                                                                                                    
     270               0 :                       default:                                                                                                                                                                                                                                                                    
     271               0 :                             $timeToDisplay = ($period > 14)? sprintf($this->translate->_("Letzte %1\$s Wochen"), ceil($period/7) ) : sprintf($this->translate->_("Letzte %1\$s Tage"), $period );                                                                                                 
     272               0 :                         break;                                                                                                                                                                                                                                                                    
     273               0 :                 }                                                                                                                                                                                                                                                                                 
     274               0 :                 $periodSelections .= "<option value='".$period."'".$selected.">".$timeToDisplay."</option>\n";                                                                                                                                                                                    
     275               0 :               }                                                                                                                                                                                                                                                                                   
     276               0 :               $showAll = isset($_GET['showAll']) ? "?showAll=42" : "";                                                                                                                                                                                                                            
     277               0 :               $newsTableHead = new Template(PATH_TO_ROOT."news/templates/newstablehead_select.html");                                                                                                                                                                                             
     278                 :                                                                                                                                                                                                                                                                                                   
     279               0 :               $g_Zeitraumwaehlen = $this->translate->_("Zeitraum w&auml;hlen");                                                                                                                                                                                                                   
     280                 :                                                                                                                                                                                                                                                                                                   
     281               0 :               eval($newsTableHead->GetTemplate());                                                                                                                                                                                                                                                
     282               0 :         }                                                                                                                                                                                                                                                                                         
     283                 :         else {                                                                                                                                                                                                                                                                                    
     284               0 :             echo "<tr><td class='newsCatBlockHeader' $color>".$title."</td></tr>\n";                                                                                                                                                                                                              
     285                 :         }                                                                                                                                                                                                                                                                                         
     286                 :                                                                                                                                                                                                                                                                                                   
     287               0 :         echo "<tr><td class='newsCatBlockContent'>\n";                                                                                                                                                                                                                                            
     288               0 :     }                                                                                                                                                                                                                                                                                             
     289                 :     /**                                                                                                                                                                                                                                                                                           
     290                 :      * Methode zum Ausgeben eines News-Eintrages. Muss von jeder Unterklasse implementiert werden.                                                                                                                                                                                                
     291                 :      *                                                                                                                                                                                                                                                                                            
     292                 :      * @param $entry array Einzelner Newseintrag                                                                                                                                                                                                                                                  
     293                 :      * @param $courseID int ID des Kurses                                                                                                                                                                                                                                                         
     294                 :      * @param $usergroup int ID der Benutzergruppe (default null)                                                                                                                                                                                                                                 
     295                 :      */                                                                                                                                                                                                                                                                                           
     296                 :     protected abstract function echoNewsEntry($entry, $courseID, $usergroup = null);                                                                                                                                                                                                              
     297                 :     /**                                                                                                                                                                                                                                                                                           
     298                 :      * Methode zum Ausgeben der News.                                                                                                                                                                                                                                                             
     299                 :      *                                                                                                                                                                                                                                                                                            
     300                 :      * @access public                                                                                                                                                                                                                                                                             
     301                 :      * @param $courseID int ID des Kurses                                                                                                                                                                                                                                                         
     302                 :      * @param $usergroup int ID der Benutzergruppe (default null)                                                                                                                                                                                                                                 
     303                 :      */                                                                                                                                                                                                                                                                                           
     304                 :     public function echoNews($courseID, $usergroup = null)                                                                                                                                                                                                                                        
     305                 :     {                                                                                                                                                                                                                                                                                             
     306               0 :         if (isset($this->news) && !empty($this->news) && isset($this->news["data"]))                                                                                                                                                                                                              
     307               0 :         {                                                                                                                                                                                                                                                                                         
     308               0 :             $this->getUserInfos();                                                                                                                                                                                                                                                                
     309               0 :             foreach($this->news["data"] as $entry) {                                                                                                                                                                                                                                              
     310               0 :                 $this->echoNewsEntry($entry, $courseID, $usergroup);                                                                                                                                                                                                                              
     311               0 :             }                                                                                                                                                                                                                                                                                     
     312               0 :         }                                                                                                                                                                                                                                                                                         
     313               0 :     }                                                                                                                                                                                                                                                                                             
     314                 :                                                                                                                                                                                                                                                                                                   
     315                 :     /**                                                                                                                                                                                                                                                                                           
     316                 :      * Methode zum Ermitteln der User-IDs zu den News-Eintraegen.                                                                                                                                                                                                                                 
     317                 :      * Diese werden benoetigt, wenn ein Link zu einem User angezeigt werden soll.                                                                                                                                                                                                                 
     318                 :      */                                                                                                                                                                                                                                                                                           
     319                 :     protected function getUserInfos() {                                                                                                                                                                                                                                                           
     320               0 :         if (isset($this->users) && count($this->users) > 0) {                                                                                                                                                                                                                                     
     321               0 :             global $db;                                                                                                                                                                                                                                                                           
     322               0 :             $user = array_map("intval", array_values($this->users));                                                                                                                                                                                                                              
     323               0 :             $user = $db->get_results("SELECT ID, Vorname, Nachname, Usergroup, gender FROM user WHERE ID IN (".implode(",", $user) .")", ARRAY_A);                                                                                                                                                
     324               0 :             $this->news["user"] = Utilities::setArrayIndexes($user, "ID");                                                                                                                                                                                                                        
     325               0 :         }                                                                                                                                                                                                                                                                                         
     326               0 :     }                                                                                                                                                                                                                                                                                             
     327                 :     /**                                                                                                                                                                                                                                                                                           
     328                 :      * Rückgabe eines Timestamps, der mit dem Anzeigezeitraum (in Tagen) bestimmt wird                                                                                                                                                                                                           
     329                 :      *                                                                                                                                                                                                                                                                                            
     330                 :      * @param $courseID int ID des aktuell behandelten Kurses                                                                                                                                                                                                                                     
     331                 :      * @return $lastvisit int Timestamp des letzten Besuch des Users                                                                                                                                                                                                                              
     332                 :      */                                                                                                                                                                                                                                                                                           
     333                 :     protected function getPeriod($courseID, $lastvisit) {                                                                                                                                                                                                                                         
     334               0 :         switch ($this->coursePreferences) {                                                                                                                                                                                                                                                       
     335               0 :             case LASTVISIT:                                                                                                                                                                                                                                                                       
     336               0 :                 return $lastvisit;                                                                                                                                                                                                                                                                
     337               0 :             case COURSESTART:                                                                                                                                                                                                                                                                     
     338               0 :                 return strtotime($this->courses[$courseID]["OpenDate"]);                                                                                                                                                                                                                          
     339               0 :             case REGDATE:                                                                                                                                                                                                                                                                         
     340               0 :                 return strtotime($this->courses[0]["OpenDate"]);                                                                                                                                                                                                                                  
     341               0 :             default:                                                                                                                                                                                                                                                                              
     342               0 :                 return time() -($this->coursePreferences*24*3600); // - ((int) date("H") * 3600) - ((int) date("i") * 60) - ((int) date("s"));                                                                                                                                                    
     343               0 :         }                                                                                                                                                                                                                                                                                         
     344                 :     }                                                                                                                                                                                                                                                                                             
     345                 :     /**                                                                                                                                                                                                                                                                                           
     346                 :      * Gibt den mit dem Profil verlinkten Namen eines Users zurück                                                                                                                                                                                                                               
     347                 :      * oder den Text "User nicht mehr registriert."                                                                                                                                                                                                                                               
     348                 :      *                                                                                                                                                                                                                                                                                            
     349                 :      * @param $user array Array mit den Benutzerdaten                                                                                                                                                                                                                                             
     350                 :      * @param $userID int User-ID                                                                                                                                                                                                                                                                 
     351                 :      * @return string Profil-Link oder kursiver Text "User nicht mehr                                                                                                                                                                                                                             
     352                 :      * registriert."                                                                                                                                                                                                                                                                              
     353                 :      */                                                                                                                                                                                                                                                                                           
     354                 :     protected function getProfileLink($user, $userID, $courseID) {                                                                                                                                                                                                                                
     355               0 :         if ($userID != 3 && isset($user[$userID])) {                                                                                                                                                                                                                                              
     356               0 :             $changeCourse = "";                                                                                                                                                                                                                                                                   
     357               0 :             if ($courseID && $courseID != $_SESSION["course"]) $changeCourse = "&amp;changeToCourse=$courseID";                                                                                                                                                                                   
     358               0 :             return "<a title=\"Zum Profil von ".Data::toHTML($user[$userID]["Vorname"]." ".$user[$userID]["Nachname"], false) ."\" "."href='".PATH_TO_ROOT."user/homepage.php?user=$userID$changeCourse'>".Data::toHTML($user[$userID]["Nachname"].", ".$user[$userID]["Vorname"], false) ."</a>";
     359                 :         } else {                                                                                                                                                                                                                                                                                  
     360                 :             return "<span style='font-style:italic;font-weight:normal'>"                                                                                                                                                                                                                          
     361               0 :                 . $this->translate->_("User nicht mehr registriert")                                                                                                                                                                                                                              
     362               0 :                 . "</span>";                                                                                                                                                                                                                                                                      
     363                 :         }                                                                                                                                                                                                                                                                                         
     364                 :     }                                                                                                                                                                                                                                                                                             
     365                 :                                                                                                                                                                                                                                                                                                   
     366                 :     public function getUsers() {                                                                                                                                                                                                                                                                  
     367               0 :         return $this->users;                                                                                                                                                                                                                                                                      
     368                 :     }                                                                                                                                                                                                                                                                                             
     369                 : }                                                                                                                                                                                                                                                                                                 

Generated by PHPUnit 3.2.21 and Xdebug 2.0.4 at Sat Nov 7 22:04:08 CET 2009.